# -*- coding: utf-8 -*-
"""
Created on Fri Feb  1 19:14:40 2019
python3.6.3
Anaconda->spyder
opencv3.4.5
代码参考《OpenCV3计算机视觉 Python语言实现》（第二版）
@author: Administrator
"""
import cv2
import numpy as np


img = np.zeros((200,200),dtype = np.uint8)
img[50:150,50:150] = 255
#进行二值化，高于127的全部变为255，
#第四个参数有
"""
cv2.THRESH_BINARY（黑白二值化）
cv2.THRESH_BINARY_INV（黑白互换）
cv2.THRESH_TRUNC
等等
"""
ret,thresh = cv2.threshold(img,127,255,0)
"""
cv2.findContoursh会改变原函数，可以使用img.copy()来做输入,
例如，img = cv2.imread('..',cv2.IMREAD_REDUCED_GRAYSCALE_4)
img2 = img.copy()
输入的图像若为彩色的，会报错，应该输入为灰度的
"""
image,contours,hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

#将图像化为黑白灰度图
color = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)#必须要有这句

#第四个参数是边框的颜色，分别为BGR
#第五个为边框的宽度
img = cv2.drawContours(color,contours,-1,(0,0,255),2) #必须使用color才能把边框画上去
cv2.imshow('con',color)#可以是img,也可以是color
cv2.waitKey()
cv2.destroyAllWindows()